Methods and apparatuses providing noise reduction while preserving edges for imagers

ABSTRACT

Methods and apparatuses of reducing noise in an image by obtaining a first value for a target pixel, obtaining a respective second value for neighboring pixels surrounding the target pixel, for each neighboring pixel, comparing a difference between the first value and the second value to a threshold value and selectively replacing the first value with an average value obtained from the first value and at least a subset of the second values from the neighboring pixels which have an associated difference which is less than the threshold value based on a result of the comparing step. In a further modification, less than all neighboring pixels which have an associated difference which is less than the threshold value are used in the averaging.

This application is a continuation-in-part of U.S. patent applicationSer. No. 11/295,445, filed on Dec. 7, 2005, the subject matter of whichis incorporated in its entirety by reference herein.

FIELD OF THE INVENTION

The embodiments described herein relate generally to the field of solidstate imager devices, and more particularly to methods and apparatusesfor noise reduction in a solid state imager device.

BACKGROUND OF THE INVENTION

Solid state imagers, including charge coupled devices (CCD), CMOSimagers and others, have been used in photo imaging applications. Asolid state imager circuit includes a focal plane array of pixels, eachone of the pixels including a photosensor, which may be a photogate,photoconductor or a photodiode having a doped region for accumulatingphoto-generated charge.

One of the most challenging problems for solid state imagers is noisereduction, especially for imagers with a small pixel size. The effect ofnoise on image quality increases as pixel sizes continue to decrease andmay have a severe impact on image quality. Specifically, noise impactsimage quality in smaller pixels because of reduced dynamic range. One ofthe ways of solving this problem is by improving fabrication processes;the costs associated with such improvements, however, are high.Accordingly, engineers often focus on other methods of noise reduction.One such solution applies noise filters during image processing. Thereare many complicated noise reduction algorithms which reduce noise inthe picture without edge blurring, however, they require hugecalculating resources and cannot be easily implemented in asystem-on-a-chip application. Most simple noise reduction algorithmswhich can be implemented in system-on-a-chip applications blur the edgesof the images.

Two known methods that may be used for image denoising are briefly nowdiscussed. The first method includes the use of local smoothing filters,which work by applying a local low-pass filter to reduce the noisecomponent in the image. Typical examples of such filters includeaveraging, medium and Gaussian filters. One problem associated withlocal smoothing filters is that they do not distinguish between highfrequency components that are part of the image and those created due tonoise. As a result, these filters not only remove noise but also blurthe edges of the image.

A second group of denoising methods work in the spatial frequencydomain. These methods typically first convert the image data into afrequency space (forward transform), then filter the transformed imageand finally convert the image back into the image space (reversetransform). Typical examples of such filters include DFT filters andwavelength transform filters. The utilization of these filters for imagedenoising, however, is impeded by the large volume of calculationsrequired to process the image data. Additionally, block artifacts andoscillations may result from the use of these filters to reduce noise.Further, these filters are best implemented in a YUV color space (Y isthe luminance component and U and V are the chrominance components).Accordingly, there is a need and desire for an efficient image denoisingmethod and apparatus which does not significantly blur the edges of theimage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a top-down view of a conventional microlens and color filterarray used in connection with a pixel array.

FIG. 2A depicts an image correction kernel for a red, greenred,greenblue, or blue pixel of a pixel array in accordance with anembodiment.

FIG. 2B depicts a correction kernel for a green pixel of a pixel arrayin accordance with an embodiment.

FIG. 3 depicts the correction kernel of FIG. 2A in more detail.

FIG. 4 shows a flowchart of a method for removing pixel noise inaccordance with an embodiment.

FIG. 5 shows a flowchart of a method for removing pixel noise inaccordance with another embodiment.

FIG. 6 shows a block diagram of an imager constructed in accordance withan embodiment described herein.

FIG. 7 shows a processor system incorporating at least one imagerconstructed in accordance with an embodiment described herein.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof and show by way ofillustration specific embodiments that may be practiced. Theseembodiments are described in sufficient detail to enable those ofordinary skill in the art to make and use them, and it is to beunderstood that other embodiments may be utilized, and that structural,logical, procedural, and electrical changes may be made to the specificembodiments disclosed. The progression of processing steps described isan example of the embodiments; however, the sequence of steps is notlimited to that set forth herein and may be changed as is known in theart, with the exception of steps necessarily occurring in a certainorder.

The term “pixel,” as used herein, refers to a photo-element unit cellcontaining a photosensor device and associated structures for convertingphotons to an electrical signal. For purposes of illustration, a smallrepresentative three-color pixel array is illustrated in the figures anddescription herein. However, the embodiments may be applied tomonochromatic imagers as well as to imagers for sensing fewer than threeor more than three color components in an array. Accordingly, thefollowing detailed description is not to be taken in a limiting sense,and the scope of the present invention is defined only by the appendedclaims.

FIG. 1 depicts one known conventional color filter array, arranged in aBayer pattern, covering a pixel array to focus incoming light. It shouldbe understood that, taken alone, a pixel generally does not distinguishone incoming color of light from another and its output signalrepresents only the intensity of light received, not any identificationof color. However, pixels 80, as discussed herein, are referred to bycolor (i.e., “red pixel,” “blue pixel,” etc.) when a color filter 81 isused in connection with the pixel array to focus a particular wavelengthrange of light, corresponding to a particular color, onto the pixels 80.Accordingly, when the term “red pixel” is used herein, it is referringto a pixel associated with and receiving light through a red colorfilter; when the term “blue pixel” is used herein, it is referring to apixel associated with and receiving light through a blue color filter;and when the term “green pixel” is used herein, it is referring to apixel associated with and receiving light through a green color filter.It should be appreciated that the term “green pixel” can refer to a“greenred pixel,” which is a green pixel in the same row with redpixels, and can refer to a “greenblue pixel,” which is a green pixel inthe same row with blue pixels.

FIGS. 2A and 2B illustrate parts of pixel array 100 having an identifiedtarget pixel 32 a, 32 b that may undergo a corrective method inaccordance with an embodiment described herein. The identified targetpixel 32 a shown in FIG. 2A in pixel array 100 may be a red, a greenred,a greenblue, or a blue pixel. Pixel array 100 shown in FIG. 2B has anidentified pixel 32 b that for purposes of further description is agreen pixel (either greenred or greenblue).

In the illustrated examples, it is assumed that the pixel array 100 isassociated with a Bayer pattern color filter array 82 (FIG. 1); however,the embodiments may also be used with other color filter patterns or thecolor filter array may be omitted for a monochrome pixel array 100. Thecolor filters 81 focus incoming light of a particular wavelength rangeonto the underlying pixels 80. In the Bayer pattern, as illustrated inFIG. 1, every other pixel array row consists of alternating red (R) andgreen (G) colored pixels, while the other rows consist of alternatinggreen (G) and blue (B) color pixels.

To denoise identified target pixel 32 a, 32 b, embodiments utilizesignal values of the nearest neighboring pixels of the identified targetpixel 32 a, 32 b. The identified target pixel 32 a, 32 b is the pixelcurrently being processed. The neighboring pixels are collectivelyreferred to herein as a correction kernel, shown in FIGS. 2A and 2Brespectively as kernels 101 a, 101 b. For example, it may be desirableto select the pixels in the correction kernel 101 a to have the samecolor as the target pixel 32 a, such as, for example, red, greenred,greenblue, and blue and to select the pixels in the correction kernel101 b to have the same color as the target pixel 32 b, such as, forexample green (without differentiating between greenred and greenblue).A total of eight neighboring pixels are included in each kernel 101 a,101 b. It should be noted, that the illustrated correction kernels 101a, 101 b are examples, and that other correction kernels may be chosenfor pixel arrays using color filter patterns other than the Bayerpattern. In addition, a correction kernel could encompass more or lessthan eight neighboring pixels, if desired.

In FIGS. 2A and 2B, the illustrated correction kernels 101 a, 101 b areoutlined with a dotted line. For kernel 101 a there are eight pixels(pixels 10, 12, 14, 34, 54, 52, 50, and 30) having the same color as theidentified target pixel 32 a. Although it appears that correction kernel101 a contains sixteen pixels, it should be noted that half of thepixels are not the same color as the target pixel 32 a, whose signalswould not be considered for use in denoising target pixel 32 a. Theactual pixels that make up kernel 101 a are shown in greater detail inFIG. 3. Kernel 101 b also includes eight pixels (pixels 12, 23, 34, 43,52, 41, 30, and 21) having the same green color (without differentiatingbetween greenred and greenblue) as the identified pixel 32 b.

As described in detail below, the embodiments described herein may beused to denoise images while preserving edges. Rather than outputtingthe actual pixel signal value for the target pixel, the target pixel'ssignal value (“value”) is averaged with the signal values of pixels inthe correction kernel. This averaging is done to minimize the effectnoise has on an individual pixel. For example, in a flat-field image, anarray of ideal pixels would output the same signal value for every pixelin the array; however, because of noise the pixels of the array do notoutput the same signal for every pixel in the array. By averaging thesignal values from the surrounding pixels having the same color as thetarget pixel, the effect of noise on the target pixel is reduced.

In order to preserve edges, it is desirable to set a threshold such thataveraging is only performed if the difference between the target pixelsignal value and the signal values of pixels in the correction kernel isbelow a threshold. Only noise that has amplitude of dispersion (thedifference between the average maximum and minimum value) lower than anoise amplitude threshold (TH) will be averaged and reduced. Therefore,the threshold should be set such that noise is reduced, but pixels alongedges will be subjected to less (or no) averaging thereby preservingedges. An embodiment described herein sets a noise amplitude threshold(TH), which may be a function of analog and digital gains that may havebeen applied to amplify the original signal. It should be appreciatedthat the threshold TH can be varied based on, for example, pixel color.An embodiment described herein accomplishes this by processing a centraltarget pixel by averaging it with all its like color neighbors thatproduce a signal difference less than the set threshold. Anotherembodiment described herein accomplishes this by processing a centraltarget pixel by averaging it with a selected subset of its like colorneighbors that produce a signal difference less than the set threshold.Further, the exemplary noise filter could be applied either to eachcolor separately in Bayer, Red/Green/Blue (RGB), Cyan/Magenta/Yellow/Key(CMYK), luminance/chrominance (YUV), or other color space.

With reference to FIG. 4, one example method 200 is now described. Themethod can be carried out by a processor circuit, such as, for example,an image processor circuit 280 (described below with reference to FIG.6) which can be implemented in hardware logic, or as a programmedprocessor or some combination of the two. Alternatively, the method canbe implemented by a processor circuit separate from an image processorcircuit 280, such as, for example, a separate hardwired logic orprogrammed processor circuit or a separate stand alone computer.

It should be understood that each pixel has a value that represents anamount of light received at the pixel. Although representative of areadout signal from the pixel, the value is a digitized representationof the readout analog signal. These values are represented in thefollowing description as P(pixel) where “P” is the value and “(pixel)”is the pixel number shown in FIGS. 2A or 2B. For explanation purposesonly, the method 200 is described with reference to the kernel 101 a andtarget pixel 32 a as illustrated in FIG. 2A.

Initially, at step 201, the target pixel 32 a being processed isidentified. Next, at step 202, the kernel 101 a associated with thetarget pixel 32 a is selected/identified. After the associated kernel101 a is selected, at step 203, the difference in values P(pixel) of thecentral (processed) pixel 32 a and each neighboring pixel 10, 12, 14,30, 34, 50, 52, 54 in kernel 101 a are compared with a threshold valueTH. The threshold value TH may be preselected, for example, using noiselevels from current gain settings, or using other appropriate methods.In the illustrated example, at step 203, neighboring pixels that have adifference in value P(pixel) less than or equal to the threshold valueTH are selected. Alternatively, at step 203, a subset of the neighboringpixels that have a difference in value P(pixel) less than or equal tothe threshold value TH are selected. For example purposes only, thevalue could be the red value if target pixel 32 a is a red pixel.

Next, at step 204, a value P(pixel) for each of the kernel pixelslocated around the target pixel 32 a, which were selected in step 203,are added to a corresponding value for the target pixel 32 a and anaverage value A(pixel) is calculated. For example, for target pixel 32a, the average value A32=(P10+P12+P14+P30+P32 a+P34+P50+P52+P54)/9 iscalculated, if all eight neighboring pixels were selected in step 203.At step 205, the calculated value A(pixel), which is, in this example,A32, replaces the original target pixel value P32 a.

The methods described herein may be carried out on each pixel signal asit is processed. As pixels values are denoised, the values of previouslydenoised pixels may be used to denoise other pixel values. Thereby, whenthe method described herein and the values of previously denoised pixelsare used to denoise other pixels, the method and apparatus isimplemented in a partially recursive manner (pixels are denoised usingvalues from previously denoised pixels). However, the embodiments arenot limited to this implementation and may be implemented in a fullyrecursive (pixels are denoised using values from other denoised pixels)or non-recursive manner (no pixels having been denoised are used todenoise subsequent pixels).

The method 200 described above may also be implemented and carried out,as discussed above, on target pixel 32 b and associated image correctionkernel 101 b (FIG. 2B). For example, in step 202 the kernel 101 b isselected/identified. After the associated kernel 101 b is selected fortarget pixel 32 b, the differences in values between each of theneighboring pixels 12, 21, 23, 30, 34, 41, 43, 52 in kernel 101 blocated around target pixel 32 b and the value of target pixel 32 b arecompared to a threshold TH in step 203. The remaining steps 204, 205 arecarried out as discussed above for the pixels corresponding to kernel101 b.

The methods described above provide good denoising. It may be desirable,however, to limit the number of pixels utilized in the averaging of thetarget pixel signal value and the correction kernel signal values todecrease implementation time and/or decrease die size. For example, asillustrated in the flowchart of FIG. 5, the number of pixels averagedmay, for example, be limited to an integer power of the number two(e.g., 1, 2, 4, 8, etc.) which limits the averaging to binary division.In other words, the average value is an average of 2^(n) pixel signalswhere n is an integer. Binary division may be desirable as it can beimplemented with register shifts, thereby decreasing die size and timenecessary to average the target pixel. The flowchart of FIG. 5illustrates a method 2000 of noise reduction which can be carried out byan image processor circuit 280 (described below with reference to FIG.6) which can be implemented in hardware logic or as a programmedprocessor or some combination of the two. Alternatively, the method canbe implemented by a processor circuit separate from an image processorcircuit 280, such as, for example, a separate hardwired logic orprogrammed processor circuit or a separate stand alone computer. Forexplanation purposes only, the method 2000 is described with referenceto the kernel 101 a and target pixel 32 a as illustrated in FIG. 2A.

Initially, at step 2010, a target pixel p having a signal value p_(sig)is selected/identified, for example, pixel 32 a (FIG. 2A). It should beappreciated if a Bayer pattern color filter array is utilized with pixelarray 100 (FIG. 2A), that pixel 32 a may be a red, greenred, greenblue,or blue pixel. For explanation purposes, pixel 32 a will be described asand referred to as a greenblue pixel. Next, first and second registervalues Pixel_(sum) and Pixel_(sum) _(—) _(new), respectively, areinitialized to be equal to p_(sig) and first and second countersPixel_(count) and Pixel_(count) _(—) _(new), respectively, are initialedto be equal to 1 (step 2020). Then, a correction kernel associated withthe target pixel p containing N pixels is selected/identified, forexample, kernel 101 a (FIG. 2A) containing greenblue pixels 10, 12, 14,30, 34, 50, 52, 54 (step 2030). The N pixels from the kernel are groupedat step 2040. It may be desirable to process the correction kernelpixels that are closest to the target pixel first, for example, the Npixels can be grouped into one or more groups g by their distance fromtarget pixel p. For example, a first group g can be selected to includepixels 12, 52, 30, and 34 that are closest to target pixel 32 a and asecond group g can be selected to include pixels 10, 14, 50, and 54 thatare further away from target pixel 32 a than the pixels in the firstgroup g. Then the groups g can be assessed in order of their distance totarget pixel p, such that the pixels in a group closest to target pixelp can be assessed before pixels in a group further from target pixel pare assessed. It should be appreciated that all of the pixels N canalternatively be grouped into one group g. Then in step 2050, a group gthat has not been previously assessed is selected. For example, it maybe desirable to select a group of pixels that has not been previouslyassessed that is closest to target pixel p. Next, a pixel n having asignal value n_(sig) from the selected group g is selected (step 2060).

In step 2070, a determination is made to see if the absolute value ofthe difference between n_(sig) and P_(sig) is less than a threshold TH.The threshold value TH may be preselected, for example, using noiselevels from current gain settings, or using other appropriate methods.Additionally, the threshold value TH can be preselected based on thecolor of the target pixel p. If the determined difference is greaterthan the threshold TH (step 2070), n_(sig) is not included in theaveraging and the method 2000 then determines if all of the pixels ingroup g have been assessed (step 2130). However, if the determineddifference is less than the threshold TH (step 2070), a new value forPixel_(sum) is determined by adding n_(sig) to Pixel_(sum) (step 2080)and a new value for Pixel_(count) is determined by incrementingPixel_(count) (step 2090). The method 2000 then compares the value ofPixel_(count) to a set of at least one predetermined number (step 2100).For example, it may be desirable to compare the value of Pixel_(count)to a set of values comprised of integer powers of the number two. Asdescribed below in more detail, division by Pixel_(count) is required instep 2150 and when implementing division in hardware, division by apower of two can be accomplished with register shifts, thereby makingthe operation faster and able to be implemented in a smaller die area.If Pixel_(count) is contained in the set of at least one predeterminednumber, for example, if Pixel_(count) is 4 and the set of at least onepredetermined number includes 1, 2, 4, and 8, Pixel_(count) _(—) _(new)is determined by setting Pixel_(count) _(—new) =Pixel_(count) (step2110) and Pixel_(sum) _(—) _(n), is determined by setting Pixel_(sum)_(—) _(new)=Pixel_(sum) (step 2120). If Pixel_(count) is not containedin the set of at least one predetermined number (step 2100), forexample, if Pixel_(count) is 7 and the set of at least one predeterminednumber includes 1, 2, 4, and 8, Pixel_(sum) _(—) _(new) will not bedetermined and the method 2000 continues by determining if all pixels ingroup g have been assessed (step 2130). It should be appreciated that ifPixel_(count) is not in the set of at lest one predetermined number,then Pixel_(sum) _(—) _(new) will not include the current value forPixel_(sum). In other words, Pixel_(sum) _(—) _(new) is only set whenPixel_(count) is within the set of at least one predetermined number.

Then the method 2000 determines if all pixels in group g have beenassessed (step 2130). If not, then the method returns to step 2060 andselects a next pixel n. If all of the pixels in group g have beenassessed (step 2130), the method 2000 determines if all groups g havebeen assessed (step 2140). If all groups g have not been assessed, themethod 2000 continues at step 2050 and selects a next group g. If allgroups g have been assessed, then p_(sig) _(—) _(new) is determined bydividing Pixel_(sum) _(—) _(new) by Pixel_(count) _(—) _(new) (step2150). The method 2000 can then be repeated for a next target pixel p atstep 2010.

The method 2000 described above may also be implemented and carried out,as discussed above, on target pixel 32 b (FIG. 2B) and associated imagecorrection kernel 101 b (FIG. 2B). For example, it may be desirable toaverage both greenred and greenblue pixels together. If target pixel 32b is a greenred pixel, the correction kernel could be selected toinclude pixels 30, 12, 34, 52, 21, 23, 41, and 43 where pixels 31, 12,23, and 52 are greenred pixels and pixels 21, 23, 41, and 43 aregreenblue pixels.

The above described embodiments may not provide sufficient denoising toremove spurious noise (i.e., noise greater than 6 standard deviations).Accordingly, embodiments of the invention are better utilized whenimplemented after the image data has been processed by a filter whichwill remove spurious noise.

In addition to the above described embodiments, a program for operatinga processor embodying the methods may be stored on a carrier mediumwhich may include RAM, floppy disk, data transmission, compact disk,etc. which can be executed by an associated processor. For example,embodiments may be implemented as a plug-in for existing softwareapplications or may be used on their own. The embodiments are notlimited to the carrier mediums specified herein and may be implementedusing any carrier medium as known in the art or hereinafter developed.

FIG. 6 illustrates an example imager 300 having an exemplary CMOS pixelarray 240 with which described embodiments may be used. Row lines of thearray 240 are selectively activated by a row driver 245 in response torow address decoder 255. A column driver 260 and column address decoder270 are also included in the imager 300. The imager 300 is operated bythe timing and control circuit 250, which controls the address decoders255, 270. The timing and control circuit 250 also controls the row andcolumn driver circuitry 245, 260.

A sample and hold circuit 261 associated with the column driver 260reads a pixel reset signal Vrst and a pixel image signal Vsig forselected pixels of the array 240. A differential signal (Vrst−Vsig) isproduced by differential amplifier 262 for each pixel and is digitizedby analog-to-digital converter 275 (ADC). The analog-to-digitalconverter 275 supplies the digitized pixel signals to an image processorcircuit 280 which forms and may output a digital image. The method 200(FIG. 4) and method 2000 (FIG. 5) may be implemented by a processorcircuit. For example, the processor circuit may be the image processorcircuit 280 which is implemented as a digital logic processor pipelineor as a programmed processor that is capable of performing the method200 (FIG. 4) or method 2000 (FIG. 5) on the digitized signals from thepixel array 240. Alternatively, the processor circuit may be implementedas a hardwired circuit that processes the analog output of the pixelarray and is located between the amplifier 262 and ADC 275 (not shown).Although the imager 300 has been described as a CMOS imager, this ismerely one example imager that may be used. Embodiments of the inventionmay also be used with other imagers having a different readoutarchitecture. While the imager 300 has been shown as a stand-aloneimager, it should be appreciated that the embodiments are not solimited. For example, the embodiments may be implemented on asystem-on-a-chip or the imager 300 can be coupled to a separate signalprocessing chip which implements disclosed embodiments. Additionally,raw imaging data can be output from the image processor circuit 280(which can be implemented in hardware logic, or as a programmedprocessor or some combination of the two) and stored and denoisedelsewhere, for example, in a system as described in relation to FIG. 7below or in a stand-alone image processing system.

FIG. 7 shows system 1100, a typical processor system modified to includethe imager 300 (FIG. 6) of an embodiment. The system 1100 is an exampleof a system having digital circuits that could include imagers. Withoutbeing limiting, such a system could include a computer system, still orvideo camera system, scanner, machine vision, video phone, and autofocus system, or other imager systems.

System 1100, for example a camera system, may comprise a centralprocessing unit (CPU) 1102, such as a microprocessor, that communicateswith one or more input/output (I/O) devices 1106 over a bus 1104. Imager300 also communicates with the CPU 1102 over the bus 1104. Theprocessor-based system 1100 also includes random access memory (RAM)1110, and can include removable memory 1115, such as flash memory, whichalso communicates with the CPU 1102 over the bus 1104. The imager 300may be combined with a processor, such as a CPU, digital signalprocessor, or microprocessor, with or without memory storage on a singleintegrated circuit or on a different chip than the processor. Asdescribed above, raw image data from the pixel array 240 (FIG. 6) can beoutput from the imager 300 image processor circuit 280 and stored, forexample in the random access memory 1110 or the CPU 1102. Denoising canthen be performed on the stored data by the CPU 1102, or can be sentoutside the system 1100 and stored and operated on by a stand-aloneprocessor, e.g., a computer, external to system 1100 in accordance withthe embodiments described herein.

While the embodiments have been described in detail in connection withpreferred embodiments known at the time, it should be readily understoodthat the claimed invention is not limited to the disclosed embodiments.Rather, the embodiments can be modified to incorporate any number ofvariations, alterations, substitutions, or equivalent arrangements notheretofore described. For example, the methods can be used with pixelsin other patterns than the described Bayer pattern, and the correctionkernels would be adjusted accordingly. While the embodiments aredescribed in connection with a CMOS imager, they can be practiced withother types of imagers. Thus, the claimed invention is not to be seen aslimited by the foregoing description, but is only limited by the scopeof the appended claims.

1. A method of processing an image, comprising the steps of: selecting aset of pixel signals from pixels surrounding an identified target pixelhaving a target pixel signal; for each of the surrounding pixel signalsof the set, determining a respective difference value between the targetpixel signal and the surrounding pixel signal; for each of thesurrounding pixel signals of the set, determining if the respectivedifference value is less than a predetermined threshold; andsubstituting an average value as a value for the target pixel signal,the average value is based on the target pixel signal and at least aselected subset of the pixel signals having a respective differencevalue less than a predetermined threshold.
 2. The method of claim 1,wherein the average value is an average of 2^(n) pixel signals where nis an integer.
 3. The method of claim 1, wherein the target pixel is oneof a red, greenred, greenblue, or blue pixel and each of the pixels inthe selected set are the same color as the target pixel.
 4. The methodof claim 1, wherein at least one of the surrounding pixels has beenpreviously denoised.
 5. The method of claim 1, wherein the predeterminedthreshold is based on at least one of an analog and digital gain used inimage capture.
 6. The method of claim 1, wherein the predeterminedthreshold is based on the color of the target pixel.
 7. A method ofprocessing an image comprising the steps of: selecting a target pixelhaving a first signal value; replacing a first register value with a sumof the first register value and the first signal value; incrementing afirst counter; selecting a correction kernel having a number of pixelssurrounding the target pixel, each of the kernel pixels having arespective second signal value; grouping the selected kernel pixels intoat least one pixel group; comparing a difference between the firstsignal value and a one of the respective second signal values to athreshold value; replacing the first register value with a sum of thefirst register value and one of the respective second signal valuesbased on a result of the comparing the difference step; incrementing thefirst counter based on a result of the comparing the difference step;comparing a value of the first counter to a set of at least onepredetermined number; replacing a second register value with the firstregister value based on a result of the comparing the value step;replacing a value of a second counter with the value of the firstcounter based on a result of the comparing the value step; and replacingthe first signal value with the result of a division of the secondregister value by the second counter.
 8. The method of claim 7, furthercomprising repeating the comparing the difference step through replacingthe value of the second counter step for each of the respective secondsignal values.
 9. The method of claim 7, further comprising repeatingthe comparing the difference step through replacing the value of thesecond counter step for each of the respective second signal values in afirst pixel group before repeating the comparing the difference stepthrough replacing the value of the second counter step for each of therespective second signal values in a second pixel group.
 10. The methodof claim 7, wherein each selected kernel pixel has a respective distancefrom the target pixel and are grouped based on each kernel pixels'distance from the target pixel.
 11. The method of claim 7, wherein theset of at least one predetermined number is comprised of integer powersof the number two.
 12. The method of claim 7, wherein the target pixelis one of a red, green, or blue pixel and each of the selected kernelpixels are the same color as the target pixel.
 13. A method ofprocessing an image, comprising the steps of: selecting a target pixelhaving a signal value; selecting a correction kernel associated with thetarget pixel containing a set of correction kernel pixels each having arespective pixel signal and a respective distance from the target pixel;for each of the correction kernel pixel signals, determining arespective difference value between the target pixel signal and thecorrection kernel pixel signal; for each of the correction kernel pixelsignals, determining if the respective difference value is less than apredetermined threshold; and substituting an average value as a valuefor the target pixel signal, the average value being an average of 2^(n)pixel signals where n is an integer, wherein the 2^(n) signals arecomprised of the target pixel signal and at least a subset of thecorrection kernel pixel signal having a respective difference value lessthan a predetermined threshold.
 14. The method of claim 13, wherein theat least a subset of correction kernel pixel signals is selected basedon the correction kernel pixel signals respective distances from thetarget pixel.
 15. An imager comprising: a pixel array for capturing animage and comprising a plurality of pixels, each pixel outputting asignal representing an amount of light received; and a circuit fordenoising an image captured by the array, the circuit being configuredto: select from the captured image a target pixel having a signal value;select a correction kernel associated with the target pixel containing aset of correction kernel pixels each having a respective pixel signaland a respective distance from the target pixel; for each of thecorrection kernel pixel signals, determine a respective difference valuebetween the target pixel signal and the correction kernel pixel signal;for each of the correction kernel pixel signals, determine if therespective difference value is less than a predetermined threshold; andsubstitute an average value as a value for the target pixel signal, theaverage value being an average of 2^(n) pixel signals where n is aninteger, wherein the 2^(n) signals are comprised of the target pixelsignal and at least a subset of the correction kernel pixel signalshaving a respective difference value less than a predeterminedthreshold.
 16. The imager of claim 15, wherein the at least a subset ofcorrection kernel pixel signals is selected based on the correctionkernel pixel signals respective distances from the target pixel.
 17. Theimager of claim 15, wherein the imager is part of a camera system. 18.An imager comprising: a pixel array for capturing an image andcomprising a plurality of pixels, each pixel outputting a signalrepresenting an amount of light received; and a processing circuit fordenoising an image captured by the array, the processing circuit beingconfigured to: select from the captured image a set of pixel signalsfrom pixels surrounding an identified target pixel having a target pixelsignal; for each of the surrounding pixel signals of the set, determinea respective difference value between the target pixel signal and thesurrounding pixel signal; for each of the surrounding pixel signals ofthe set, determine if the respective difference value is less than apredetermined threshold; and substitute an average value as a value forthe target pixel signal, the average value is based on the target pixelsignal and at least a selected subset of the pixel signals having arespective difference value less than a predetermined threshold.
 19. Theimager of claim 18, wherein the average value is an average of 2^(n)pixel signals where n is an integer.
 20. The imager of claim 18, whereinthe target pixel and each pixel in the selected set are the same color.21. The imager of claim 18, wherein at least one of surrounding pixelshas been previously denoised.
 22. The imager of claim 18, wherein theimager is part of a camera system.
 23. A storage medium containing aprogram for execution by a processor, the processor when executing theprogram, performs the steps of: selecting a set of pixel signals frompixels surrounding an identified target pixel having a target pixelsignal; for each of the surrounding pixel signals of the set,determining a respective difference value between the target pixelsignal and the surrounding pixel signal; for each of the surroundingpixel signals of the set, determining if the respective difference valueis less than a predetermined threshold; and substituting an averagevalue as a value for the target pixel signal, the average value is basedon the target pixel signal and at least a selected subset of the pixelsignals having a respective difference value less than a predeterminedthreshold.